package xslice

import (
	"github.com/pkg/errors"
)

func GetSliceItem[T any](s []T, idx int) (item T, err error) {
	if idx >= 0 && idx < len(s) {
		return s[idx], nil
	}

	return item, errors.Errorf("index[%d] out of range for %v", idx, s)
}

func GetSliceItemQuiet[T any](s []T, idx int) T {
	item, _ := GetSliceItem(s, idx)

	return item
}
